Systems and Methods for Haptically-Enabled Curved Devices

ABSTRACT

One illustrative system disclosed herein includes a curved device that includes a curved outer housing. The illustrative system also includes a sensor configured to detect a user interaction with the curved device and transmit a sensor signal associated with the user interaction. The illustrative system additionally includes a processor in communication with the sensor, the processor configured to: receive the sensor signal from the sensor; determine a user interaction based on the sensor signal, determine a first haptic effect based at least in part on the user interaction, and transmit a haptic signal associated with the first haptic effect. The illustrative system also includes a haptic output device configured to receive the haptic signal and output the first haptic effect.

REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 14/663,405, filed Mar. 19, 2015, entitled “Systemsand Methods for Haptically-Enabled Curved Devices,” which claimspriority to U.S. Provisional Patent Application No. 61/968,753, entitled“Physical Simulation on Rounded Device,” filed Mar. 21, 2014, theentirety of all of which is hereby incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to the field of user interface devices.More specifically, the present invention relates to haptically-enabledcurved devices.

BACKGROUND

As computer-based systems become more prevalent, the quality of theinterfaces through which humans interact with these systems is becomingincreasingly important. Recently, curved computing devices have beendeveloped. Curved computing devices may comprise outer housings (andother components, such as displays) that are permanently curved aroundone or more axes. Curved computing devices may provide users with uniqueinterfaces and user experiences. Some curved computing devices, however,may lack haptic feedback capabilities.

SUMMARY

Embodiments of the present disclosure comprise haptically-enabled curveddevices. In one embodiment, a system of the present disclosure maycomprise a curved device comprising a curved outer housing. The systemmay also comprise a sensor configured to detect a user interaction withthe curved device and transmit a sensor signal associated with the userinteraction. The system may also comprise a processor in communicationwith the sensor, the processor configured to: receive the sensor signalfrom the sensor; determine a user interaction based on the sensorsignal, determine a first haptic effect based at least in part on theuser interaction, and transmit a haptic signal associated with the firsthaptic effect. The system may further comprise a haptic output deviceconfigured to receive the haptic signal and output the first hapticeffect.

In another embodiment, a method of the present disclosure may comprise:receiving a sensor signal from a sensor configured to detect a userinteraction with a curved device, the curved device comprising a curvedouter housing. The method may also comprise determining a userinteraction based on the sensor signal, determining a first hapticeffect based at least in part on the user interaction, and transmittinga haptic signal associated with the first haptic effect to a hapticoutput device. The haptic output device may be configured to receive thehaptic signal and output the first haptic effect. Yet another embodimentcomprises a computer-readable medium for implementing such a method.

These illustrative embodiments are mentioned not to limit or define thelimits of the present subject matter, but to provide examples to aidunderstanding thereof Illustrative embodiments are discussed in theDetailed Description, and further description is provided there.Advantages offered by various embodiments may be further understood byexamining this specification and/or by practicing one or moreembodiments of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure is set forth more particularly in theremainder of the specification. The specification makes reference to thefollowing appended figures.

FIG. 1A shows an illustrative embodiment of a system forhaptically-enabled curved devices;

FIG. 1B shows another embodiment of a system for haptically-enabledcurved devices;

FIG. 2 is a block diagram showing a system for haptically-enabled curveddevices;

FIG. 3A shows an embodiment of a system for haptically-enabled curveddevices;

FIG. 3B shows another embodiment of a system for haptically-enabledcurved devices;

FIG. 4A shows yet another embodiment of a system for haptically-enabledcurved devices;

FIG. 4B shows still another embodiment of a system forhaptically-enabled curved devices;

FIG. 5 shows another embodiment of a system for haptically-enabledcurved devices; and

FIG. 6 is a flow chart of steps for performing a method for providinghaptically-enabled curved devices according to one embodiment.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeillustrative embodiments and to the accompanying drawings. Each exampleis provided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used in another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includemodifications and variations as come within the scope of the appendedclaims and their equivalents.

Illustrative Examples of Haptically-Enabled Curved Devices

FIG. 1A shows an illustrative embodiment of a system forhaptically-enabled curved devices. In this illustrative embodiment, thesystem comprises a computing device 100, such as a tablet, e-reader, ormobile phone (e.g., a smartphone). The computing device 100 comprises atouch-screen display 102, a memory, and a processor in communicationwith each of these elements.

In the illustrative embodiment, the computing device 100 is curved. Acurved computing device 100 comprises an outer housing 110 that iscurved around one or more axes 104 or 106. In one embodiment, the curvedcomputing device 100 is permanently curved. In another embodiment, thecurved computing device 100 may be deformable (e.g., bendable orflexible) around one or more axis, e.g., to a curve shape. The user maydeform the computing device 100 and/or the computing device 100 maydeform itself (e.g., by outputting a deformation haptic effect, asdescribed in greater detail with respect to FIG. 2). In the embodimentshown in FIG. 1A, the computing device 100 is curved around the Y-axis104. In other embodiments, the computing device 100 may additionally oralternatively be curved around the X-axis 106. For instance, thecomputing device 100 may be curved around both the X-axis 106 and theY-axis 104, e.g., such that the computing device 100 has a bowl shape.In some embodiments, the computing device 100 comprises other curvedcomponents, such as a curved touch-screen display 102, button 108,and/or other user interface components.

In the illustrative embodiment, the computing device 100 comprises ahaptic output device. The haptic output device is configured to receivea haptic signal from the processor and output one or more haptic effects(e.g., textures, vibrations, stroking sensations, stinging sensations,and/or changes in perceived coefficient of friction).

In the illustrative embodiment, the computing device 100 is configuredto output a haptic effect (via the haptic output device) based on a userinteraction with the computing device 100. For example, the computingdevice 100 may execute a video game, such as a virtual racing game. Thecomputing device 100 may be configured to detect a user interacting with(e.g., tapping, touching, or gesturing on) a virtual racecar displayedon the touch-screen display 102. For example, the computing device 100may detect a user contacting the virtual racecar with a finger anddragging the finger to the right 114 of the touch-screen display 102,e.g., to move the virtual racecar to the right 114 on a virtualracetrack. This may prevent the virtual racecar from impacting anothervirtual object, such as another virtual car, on the racetrack. In theillustrative embodiment, the computing device 100 determines a hapticeffect associated with the user interaction and outputs the hapticeffect.

In the illustrative embodiment, the computing device 100 determines thehaptic effect based at least in part on a curvature (e.g., an angle oramount of curvature) of the computing device 100. For example, referringto FIG. 1B, the computing device 100 may determine a location 118 alongthe curvature 116 in which the virtual object 112 (e.g., the virtualracecar) is output on the touch-screen display 102. In some embodiments,the computing device 100 may determine a characteristic (e.g.,magnitude, frequency, duration, and/or type) of the haptic effect basedon the location 118 along the curvature 116. For example, as the virtualracecar moves to the right 114 of the touch-screen display 102 (e.g.,farther up the slope of the curvature 116), the computing device 100 maydetermine a haptic effect comprising a vibration with increasingmagnitude. In some embodiments, the computing device 100 may increasethe magnitude of the vibration by an amount corresponding to theincreasing slope of the curvature 116. This may simulate forces on thevirtual racecar as the racecar drives along a racetrack with anincreasing banking angle.

In the illustrative embodiment, the computing device 100 may determinethe haptic effect based at least in part on a location 118 along thecurvature 116 in which a user is contacting the touch-screen display102. For instance, in the virtual racecar embodiment described above, asthe user swipes a finger to the right 114 of the touch-screen display102 (e.g., up the slope of the curvature 116), the computing device 100may determine an associated haptic effect. The haptic effect may beconfigured to, e.g., increase the perceived coefficient of frictionbetween the user's finger and the touch-screen display 102 by an amountcorresponding to the increasing slope of the curvature 116. This mayincrease the force resisting against the user sliding a finger acrossthe touch-screen display 102. In some embodiments, the resistance maysimulate gravitational forces, e.g., pulling on the virtual racecar asthe racecar drives up the increasing banking in the virtual racetrack.

The description of the illustrative embodiment above is provided merelyas an example. Various other embodiments of the present invention aredescribed herein and variations of such embodiments would be understoodby one of skill in the art. Advantages offered by various embodimentsmay be further understood by examining this specification and/or bypracticing one or more embodiments of the claimed subject matter.

Illustrative Systems for Haptically-Enabled Curved Devices

FIG. 2 is a block diagram showing a computing device 201 forhaptically-enabled curved devices according to one embodiment. Thecomputing device 201 may comprise a mobile device (e.g., smartphone),tablet, e-reader, game controller, gamepad, remote control, and/or aportable gaming device. Although depicted as planar in FIG. 2, in someembodiments, the computing device 201 is curved (e.g., around one ormore axes).

In some embodiments, the components (e.g., the processor 202, networkinterface device 210, haptic output device 218, sensor 230, etc.) of thecomputing device 201 may be integrated into a single housing. In otherembodiments, the components may be distributed (e.g., among multiplehousings or locations) and in electrical communication with one another.The computing device 201 may or may not comprise all of the componentsdepicted in FIG. 2. For example, in some embodiments, the computingdevice 201 may not comprise the sensor 230.

The computing device 201 comprises a processor 202 interfaced with otherhardware via bus 206. A memory 204, which can comprise any suitabletangible (and non-transitory) computer-readable medium such as RAM, ROM,EEPROM, or the like, may embody program components that configureoperation of the computing device 201. In some embodiments, thecomputing device 201 may further comprise one or more network interfacedevices 210, input/output (I/O) interface components 212, and additionalstorage 214.

Network interface device 210 can represent one or more of any componentsthat facilitate a network connection or otherwise facilitatecommunication between electronic devices. Examples include, but are notlimited to, wired interfaces such as Ethernet, USB, IEEE 1394, and/orwireless interfaces such as IEEE 802.11, Bluetooth, near-fieldcommunication (NFC) interfaces, RFID interfaces, or radio interfaces foraccessing cellular telephone networks (e.g., transceiver/antenna foraccessing a CDMA, GSM, UMTS, or other mobile communications network).

I/O components 212 may be used to facilitate connection to devices suchas one or more displays, touch sensitive surfaces 216, keyboards, mice,speakers, microphones, buttons, and/or other hardware used to input dataor output data. Storage 214 represents nonvolatile storage such asread-only memory, flash memory, ferroelectric RAM (F-RAM), magnetic,optical, or other storage media included in the computing device 201 orcoupled to processor 202.

The computing device 201 may comprise a touch sensitive surface 216. Insome embodiments, the touch sensitive surface 216 is curved. Touchsensitive surface 216 represents any surface that is configured to sensetactile input of a user. One or more touch sensors 208 are configured todetect a touch in a touch area (e.g., when an object contacts a touchsensitive surface 216) and transmit signals associated with the touch toprocessor 202. Any suitable number, type, or arrangement of touchsensors 208 can be used. For example, in some embodiments, resistiveand/or capacitive sensors may be embedded in touch sensitive surface 216and used to determine the location of a touch and other information,such as pressure, speed, direction, and/or the proximity of a user'sfinger to the touch sensitive surface 216. In such an embodiment,capacitive sensors may detect the proximity of a user's finger to thetouch sensor 208 (e.g., embedded in the touch sensitive surface 216).For example, the touch sensor 208 may comprise a capacitive sensorconfigured to detect a change in capacitance as a user's fingerapproaches the touch sensor 208. The touch sensor 208 may determinewhether the user's finger is within a particular distance of the touchsensor 208 based on the change in capacitance.

The touch sensor 208 can additionally or alternatively comprise othertypes of sensors. For example, optical sensors with a view of the touchsensitive surface 216 may be used to determine the touch position. Asanother example, the touch sensor 208 may comprise a LED (Light EmittingDiode) finger detector mounted on the side of a display. In someembodiments, touch sensor 208 may be configured to detect multipleaspects of the user interaction. For example, touch sensor 208 maydetect the speed, pressure, and direction of a user interaction, andincorporate this information into the signal transmitted to theprocessor 202.

In some embodiments, the computing device 201 comprises a touch-enableddisplay that combines a touch sensitive surface 216 and a display of thedevice. The touch sensitive surface 216 may correspond to the displayexterior or one or more layers of material above components of thedisplay. In other embodiments, touch sensitive surface 216 may notcomprise (or otherwise correspond to) a display, depending on theparticular configuration of the computing device 201.

In some embodiments, the computing device 201 comprises an interactionsensor 232. The interaction sensor 232 may comprise an accelerometer,gyroscope, camera, pressure sensor, and/or capacitive sensor. Theinteraction sensor 232 is configured to detect a user interaction withthe computing device 201 and transmit a sensor signal associated withthe user interaction to processor 202. For example, the interactionsensor 232 (e.g., an accelerometer) may be configured to detect a userrocking the curved computing device 201 back-and-forth on a surface(e.g., a table or desk) and transmit an associated sensor signal to theprocessor 202.

In some embodiments, the computing device 201 comprises one or moreadditional sensor(s) 230. The sensor(s) 230 are configured to transmitsensor signals to the processor 202. The sensor(s) 230 may comprise, forexample, a humidity sensor, ambient light sensor, gyroscope, GPS unit,accelerometer, range sensor, depth sensor, biosensor, camera, and/ortemperature sensor. In some embodiments, the sensor 230 is external tocomputing device 201 and in wired or wireless communication with thecomputing device 201. For example, the sensor 130 may comprise abiosensor configured to be worn by a user. The sensor 230 may wirelesslytransmit signals associated with a physiological status of the user tothe processor 202. In some embodiments, the processor 202 may analyzethe sensor signals to determine whether to output a haptic effect (e.g.,via haptic output device 218).

In some embodiments, the computing device 201 comprises a haptic outputdevice 218 in communication with the processor 202. The haptic outputdevice 218 is configured to output a haptic effect in response to ahaptic signal. In some embodiments, the haptic output device 218 isconfigured to output a haptic effect comprising a vibration, a change ina perceived coefficient of friction, a simulated texture, a change intemperature, a stroking sensation, an electro-tactile effect, or asurface deformation (e.g., a deformation of a surface associated withthe computing device 201). Further, some haptic effects may use multiplehaptic output devices 218 of the same or different types in sequenceand/or in concert. Although a single haptic output device 218 is shownin FIG. 2, embodiments may use multiple haptic output devices 218 of thesame or different type to produce haptic effects.

In some embodiments, the haptic output device 218 is external tocomputing device 201 and in communication with the computing device 201(e.g., via wired interfaces such as Ethernet, USB, IEEE 1394, and/orwireless interfaces such as IEEE 802.11, Bluetooth, or radiointerfaces). For example, the haptic output device 218 may associatedwith (e.g., coupled to) a wearable device and configured to receivehaptic signals from the processor 202.

In some embodiments, the haptic output device 218 is configured tooutput a haptic effect comprising a vibration. The haptic output device218 may comprise, for example, one or more of a piezoelectric actuator,an electric motor, an electro-magnetic actuator, a voice coil, a shapememory alloy, an electro-active polymer, a solenoid, an eccentricrotating mass motor (ERM), or a linear resonant actuator (LRA).

In some embodiments, the haptic output device 218 is configured tooutput a haptic effect modulating the perceived coefficient of frictionof a surface associated with the haptic output device 218. In oneembodiment, the haptic output device 218 comprises an ultrasonicactuator. An ultrasonic actuator may vibrate at an ultrasonic frequency,for example 20 kHz, increasing or reducing the perceived coefficient ofan associated surface. In some embodiments, the ultrasonic actuator maycomprise a piezo-electric material.

In some embodiments, the haptic output device 218 uses electrostaticattraction, for example by use of an electrostatic actuator, to output ahaptic effect. The haptic effect may comprise a simulated texture, asimulated vibration, a stroking sensation, or a perceived change in acoefficient of friction on a surface associated with computing device201. In some embodiments, the electrostatic actuator may comprise aconducting layer and an insulating layer. The conducting layer may beany semiconductor or other conductive material, such as copper,aluminum, gold, or silver. The insulating layer may be glass, plastic,polymer, or any other insulating material. Furthermore, the processor202 may operate the electrostatic actuator by applying an electricsignal, for example an AC signal, to the conducting layer. In someembodiments, a high-voltage amplifier may generate the AC signal. Theelectric signal may generate a capacitive coupling between theconducting layer and an object (e.g., a user's finger or other bodypart, or a stylus) near or touching the haptic output device 218.Varying the levels of attraction between the object and the conductinglayer can vary the haptic effect perceived by a user.

In some embodiments, the haptic output device 218 comprises adeformation device configured to output a deformation haptic effect. Thedeformation haptic effect may comprise raising or lowering portions of asurface associated with the computing device 201. For example, thedeformation haptic effect may comprise raising portions of the touchsensitive surface 216. In some embodiments, the deformation hapticeffect may comprise bending, folding, rolling, twisting, squeezing,flexing, changing the shape of, or otherwise deforming a surfaceassociated with the computing device 201. For example, the deformationhaptic effect may apply a force on the computing device 201 or a surfaceassociated with the computing device 201, causing it to bend, fold,roll, twist, squeeze, flex, change shape, or otherwise deform. Forinstance, if the computing device 201 is executing a virtualskateboarding half-pipe game, the deformation haptic effect may comprisebending the computing device 201 in an amount corresponding to the bendin the virtual half pipe. This may more realistically simulate featuresof the virtual half pipe for the user.

In some embodiments, the haptic output device 218 comprises fluidconfigured for outputting a deformation haptic effect (e.g., for bendingor deforming a surface associated with the computing device 201). Forexample, the fluid may comprise a smart gel. A smart gel comprises afluid with mechanical or structural properties that change in responseto a stimulus or stimuli (e.g., an electric field, a magnetic field,temperature, ultraviolet light, shaking, or a pH variation). Forinstance, in response to a stimulus, a smart gel may change instiffness, volume, transparency, and/or color. In some embodiments,stiffness may comprise the resistance of a surface associated with thecomputing device 201 against deformation. In some embodiments, one ormore wires may be embedded in or coupled to the smart gel. As currentruns through the wires, heat is emitted, causing the smart gel to expandor contract. This may cause the computing device 201 or a surfaceassociated with the computing device 201 to deform.

As another example, the fluid may comprise a rheological (e.g., amagneto-rheological or electro-rheological) fluid. A rheological fluidcomprises metal particles (e.g., iron particles) suspended in a fluid(e.g., oil or water). In response to an electric or magnetic field, theorder of the molecules in the fluid may realign, changing the overalldamping and/or viscosity of the fluid. This may cause the computingdevice 201 or a surface associated with the computing device 201 todeform.

In some embodiments, the haptic output device 218 comprises a mechanicaldeformation device. For example, in some embodiments, the haptic outputdevice 218 may comprise an actuator coupled to an arm that rotates adeformation component. The deformation component may comprise, forexample, an oval, starburst, or corrugated shape. The deformationcomponent may be configured to move a surface associated with thecomputing device 201 at some rotation angles but not others. Theactuator may comprise a piezo-electric actuator, rotating/linearactuator, solenoid, an electroactive polymer actuator, macro fibercomposite (MFC) actuator, shape memory alloy (SMA) actuator, and/orother actuator. As the actuator rotates the deformation component, thedeformation component may move the surface, causing it to deform. Insuch an embodiment, the deformation component may begin in a position inwhich the surface is flat. In response to receiving a signal fromprocessor 202, the actuator may rotate the deformation component.Rotating the deformation component may cause one or more portions of thesurface to raise or lower. The deformation component may, in someembodiments, remain in this rotated state until the processor 202signals the actuator to rotate the deformation component back to itsoriginal position.

Further, other techniques or methods can be used to deform a surfaceassociated with the computing device 201. For example, the haptic outputdevice 218 may comprise a flexible surface layer configured to deformits surface or vary its texture based upon contact from a surfacereconfigurable haptic substrate (including, but not limited to, e.g.,fibers, nanotubes, electroactive polymers, piezoelectric elements, orshape memory alloys). In some embodiments, the haptic output device 218is deformed, for example, with a deforming mechanism (e.g., a motorcoupled to wires), air or fluid pockets, local deformation of materials,resonant mechanical elements, piezoelectric materials,micro-electromechanical systems (“MEMS”) elements or pumps, thermalfluid pockets, variable porosity membranes, or laminar flow modulation.

In some embodiments, the haptic output device 218 may be a portion ofthe housing of the computing device 201. In other embodiments, thehaptic output device 218 may be housed inside a flexible housingoverlaying a surface associated with the computing device 201 (e.g., thefront or back of the computing device 201). For example, the hapticoutput device 218 may comprise a layer of smart gel overlaying thecurved back of the computing device 201. Upon actuating the hapticoutput device 218 (e.g., with an electric current or an electric field),the smart gel may expand or deform in shape. This may cause thecomputing device 201 to roll along a surface toward a side of thecomputing device 201. The user may perceive the rolling as a hapticeffect.

Turning to memory 204, modules 224, 226, and 228 are depicted to showhow a device can be configured in some embodiments to providehaptically-enabled curved devices. In some embodiments, physics modelermodule 224 represents a program component that comprises physicsmodeling software (e.g., AndEngine or PhysX by NVIDIA corporation®) formodeling natural laws (e.g., conservation of energy, Newton's laws,gravity, and other natural phenomena) in a simulated environment. Thephysics modeler module 224 may comprise code that dictates how virtualobjects move and/or interact within the simulated environment, e.g.,based on various characteristics (e.g., virtual sizes, shapes,materials, densities, and weights) of the virtual objects. For example,the physics modeler module 224 may comprise code that determines a forceof impact between two virtual objects within the simulated environmentbased on the densities and weights of the virtual objects. In someembodiments, physics modeler module 224 may comprise code thatdetermines how virtual objects move and/or interact within the simulatedenvironment based on characteristics (e.g., orientation, curvature in,size, and shape) of the computing device 201. For example, the physicsmodeler module 224 may comprise code that determines how a virtualobject moves within the simulated environment based on the curvature inthe computing device 201.

In some embodiments, haptic effect determination module 226 represents aprogram component that analyzes data to determine a haptic effect togenerate. The haptic effect determination module 226 may comprise codethat selects one or more haptic effects to output using one or morealgorithms or lookup tables. In some embodiments, the haptic effectdetermination module 226 comprises one or more algorithms or lookuptables useable by the processor 202 to determine a haptic effect.

In some embodiments, haptic effect determination module 226 comprisescode that determines a haptic effect to output based on the curvature ofthe computing device 201. In one embodiment, the haptic effectdetermination module 226 may determine a haptic effect if the userinteracts with the computing device 201 at a particular location alongthe curvature of the computing device 201. For example, the computingdevice 201 may detect the user sliding a finger up the slope of thecurved computing device 201 and output a haptic effect comprising, e.g.,a vibration with an increasing magnitude. This user may perceive thevibration and be able to determine, e.g., the position of the user'sfinger along the curvature in the computing device 201, without havingto visually focus on the computing device 201. As another example, thehaptic effect determination module 126 may determine a haptic effectcomprising a long vibration based on a user tapping the computing device201 (e.g., the touch sensitive surface 216) at a particular locationalong the curvature of the computing device 201.

In some embodiments, haptic effect determination module 226 comprisescode that determines a haptic effect based on a simulated physics modelfrom the physics modeler module 224. For example, the physics modelermodule 224 may determine the magnitude of a simulated impact of avirtual object against a virtual side of a display (e.g., as the virtualobject bounces around the display). In one embodiment, the haptic effectdetermination module 226 may determine a characteristic (e.g.,magnitude, duration, location, type, frequency, etc.) of a haptic effectbased on the magnitude of the simulated impact. For example, in one suchembodiment, if the simulated impact has a high magnitude, the hapticeffect determination module 226 may determine a haptic effect (e.g., avibration) comprising a high magnitude and/or a high frequency. If thesimulated impact has a low magnitude, the haptic effect determinationmodule 226 may determine a haptic effect (e.g., a vibration) with a lowmagnitude and/or frequency, a different type of haptic effect (e.g., ajolt sensation), or no haptic effect at all.

In some embodiments, the haptic effect determination module 226comprises code that determines a haptic effect based on an event. Anevent, as used herein, is any interaction, action, collision, or otherevent which occurs during operation of the computing device 201 whichcan potentially comprise an associated haptic effect. In someembodiments, an event may comprise user input (e.g., a button press,manipulating a joystick, interacting with a touch sensitive surface 216,tilting or orienting the device), a system status (e.g., low battery,low memory, or a system notification, such as a notification generatedbased on the system receiving an incoming phone call), sending data,receiving data, or a program event (e.g., if the program is a game, aprogram event may comprise explosions, gunshots, collisions,interactions between game characters, advancing to a new level, ordriving over bumpy terrain).

For example, in some embodiments, the processor 202 may receive a sensorsignal associated with an event that occurred on the computing device201. The event may comprise, for example, the computing device 201receiving an incoming phone call. Based on the event, the haptic effectdetermination module 226 may determine a haptic effect comprising, e.g.,rolling the curved computing device 201 toward the user. This may notifya user of the incoming call, which may be beneficial, for example, ifthe user has a ringer of the computing device 201 on silent.

Haptic effect generation module 228 represents programming that causesprocessor 202 to generate and transmit haptic signals to the hapticoutput device 218 to generate the selected haptic effect. For example,the haptic effect generation module 228 may access stored waveforms orcommands to send to the haptic output device 218 to create the desiredeffect. In some embodiments, the haptic effect generation module 228 maycomprise algorithms to determine the haptic signal. Further, in someembodiments, haptic effect generation module 228 may comprise algorithmsto determine target coordinates for the haptic effect (e.g., coordinatesfor a location on the computing device 201, such as on the touchsensitive surface 216, at which to output a haptic effect).

Although the modules 224, 226, and 228 are depicted in FIG. 2 as programcomponents within the memory 204, in some embodiments, the modules 224,226, and 228 may comprise hardware. For example, modules 224, 226, and228 may comprise analog to digital converters, processors,microcontrollers, comparators, amplifiers, transistors, and other analogor digital circuitry.

FIG. 3A shows an embodiment of a system for haptically-enabled curveddevices. The system comprises a curved computing device 302 positionedon a surface 304 (e.g., a table or desk). The computing device 302comprises a curved display 306 (e.g., touch-screen display).

The computing device 302 may output one or more virtual objects 308 onthe display 306. In some embodiments, the virtual objects 308 comprisenotifications configured to provide information to a user. Theinformation may comprise, for example, a phone number; a number ofmissed calls, text messages, and/or e-mails; an amount of time leftuntil a specific date and/or time (e.g., until a meeting); an amount oftime left to complete a download; a game status; a program status; asystem status (e.g., battery level, signal strength), etc. For example,the computing device 302 may output a plurality of virtual notificationbubbles. In some embodiments, each notification bubble can provideinformation to a user about a particular event. For example, thecomputing device 302 can display a notification bubble comprising aphone icon to notify the user of, e.g., a missed phone call. Thecomputing device 302 can display a notification bubble comprising anenvelope icon to notify the user of, e.g., a text message or an e-mail.

In some embodiments, the virtual objects 308 are customizable. In oneembodiment, the computing device 302 may display a graphical userinterface (GUI) with which a user can interact (e.g., via a touch-screendisplay) to customize one or more characteristics (e.g., a type, size,color, shape, number, and/or grouping) of the virtual objects 308. Insuch an embodiment, the computing device 302 may detect userinteractions with GUI features (e.g., virtual buttons, sliders, checkboxes, knobs, and/or widgets) and responsively alter a characteristic ofthe virtual objects 308. For example, the computing device 302 mayoutput a virtual slider that a user can interact with to, e.g., changethe diameter of the virtual notification bubbles. In such an embodiment,the computing device 302 may detect a user sliding the virtual slider ina direction and, e.g., increase the diameter of the virtual notificationbubbles.

In some embodiments, the computing device 302 may detect a userinteraction (e.g., comprising moving the computing device 302) andexecute one or more associated functions. A function, as used herein,comprises one or more digital operations. In some embodiments, afunction may comprise manipulating a virtual object 308, opening awebpage, initiating printing of a document, sending an e-mail or textmessage, determining information about a virtual object 308 (e.g., byquerying one or more servers), calling a phone number, saving data,recording a sound, removing an entry from a list, outputting a sound,playing media content, sending data, and/or receiving data.

For example, in some embodiments the computing device 302 detects a userinteraction (e.g., via an accelerometer or gyroscope) comprising rollingthe computing device 302 along the surface 304 (toward or away from theuser) and executes an associated function. For instance, a user may pushdown (e.g., as shown by dashed arrow 320) on one side 310 of thecomputing device 302. The curvature in the computing device 302 maycause the computing device 302 to roll along the surface 304 toward theuser. This may cause an opposite side 312 of the computing device 302 tolift upward and away from the surface 304 (e.g., as shown by dashed line322). In some embodiments, the computing device 302 can detect the rolland, e.g., wake the computing device 302 up from a sleep mode.

In some embodiments, the computing device 302 detects a user interactioncomprising a back-and-forth rocking motion and executes an associatedfunction. For example, after pressing down on the side 310 of thecomputing device 302, the user may release the side 310 of the computingdevice 302. The curvature in the computing device 302 (and gravity) maycause the computing device 302 to periodically roll away from the userand back toward the user in a rocking motion. The computing device 302may detect the rocking motion and, e.g., put the computing device 302into a sleep mode. In another embodiment, the user may rock thecomputing device 302 back-and-forth on the surface 304. The computingdevice 302 may detect the rocking motion and, e.g., erase or visuallyscramble content on the screen (to make it unperceivable to a user).

In some embodiments, the computing device 302 manipulates virtualobjects 308 based on a simulated physics model. A simulated physicsmodel comprises a mathematical model and/or a set of rules configured tosimulate at least some aspects of natural physical laws, such asconservation of energy, Newton's laws, gravity, and other naturalphenomena within a simulated environment. The simulated physics modelmay dictate how virtual objects 308 move and/or interact within thesimulated environment. For example, the computing device 302 maygenerate a simulated physics model based on various characteristics ofthe virtual objects 308, such as the virtual sizes, shapes, materials,densities, and weights of the virtual objects 308. In some embodiments,the computing device 302 may generate the simulated physics model basedon characteristics of the computing device 302. For example, thecomputing device 302 may generate the simulated physics model based atleast in part on the orientation, curvature in, size, and shape of thecomputing device 302 (or the display 306). The computing device 302 maymove the virtual objects 308 around the display 306, or otherwisemanipulate the virtual objects 308, in accordance with the simulatedphysics model.

For example, the computing device 302 may detect a user pushing down ona side 310, e.g., to roll the computing device 302 toward the user. Insome embodiments, as one side 312 of the computing device 302 liftsupward (e.g., as shown by dashed arrow 322) and the other side 310 ofthe computing device 302 rolls downward, the computing device 302 maycause the virtual objects 308 to “fall” toward the lower edge 314 of thedisplay 306, e.g., as shown by the dashed line 319 in FIG. 3B. This maysimulate gravitational effects on the virtual objects 308. In someembodiments, the virtual objects 308 may fall at various rates (e.g., ifthe virtual objects 308 are assigned different virtual weights), bounceagainst each other, and/or bounce off the edge of the display 306 inaccordance with the simulated physics model. This may virtually simulategravity, laws of conservation of energy, etc. For example, based on thestrength of gravity in the simulated physics model, the virtual objects308 may or may not bounce back up (away from the lower edge 314 of thedisplay 306) upon impacting the lower edge 314 of the display 306.

In some embodiments, the characteristics of the simulated physics modelare customizable. In one embodiment, the computing device 302 maydisplay a GUI with which a user can interact (e.g., via a touch-screendisplay) to customize one or more characteristics (e.g., a strength ofgravity, a force of impact, a dampening of an impact) of the simulatedphysics model. In such an embodiment, the computing device 302 maydetect user interactions with GUI features and responsively alter acharacteristic of the simulated physics model.

For example, in one embodiment, the computing device 302 may detect userinput configured to modify the strength of virtual gravity within thesimulated physics model. The computing device 302 may, e.g., reduce thegravitational effects on the virtual objects 308 based on the userinput. In another embodiment, the computing device 302 may detect userinput configured to constrain gravitational effects to one or more axis.The computing device 302 may constrain gravitational forces to, e.g.,the X-axis 324 based on user input. This can prevent unintended movementof the virtual objects 308 along another axis (e.g., the Y-axis 326). Instill another embodiment, the computing device 302 may detect user inputconfigured to modify impact forces (e.g., among virtual objects 308,and/or between virtual objects 308 and an edge of the display 306). Thecomputing device 302 may, e.g., reduce impact forces among the virtualobjects 308 based on user input.

In some embodiments, the computing device 302 is configured to outputone or more haptic effects upon the occurrence of an event. For example,the computing device 302 may output a haptic effect upon a virtualobject 308 impacting another virtual object 308 and/or an edge (e.g.,lower edge 314) of the display 306. In one such embodiment, thecomputing device 302 may detect a user rolling the computing device 302and cause the virtual notification bubbles to fall toward the lower edge314 of the display 306. The computing device 302 may output a vibrationeach time a notification bubble impacts the lower edge 314 of thedisplay 306. In such an embodiment, the notification bubbles may startat different distances from the lower edge 314 of the display and impactthe lower edge 314 of the display 306 at different times. This may allowthe user to distinctly perceive each vibration associated with animpact. Based on the number of vibrations, the user may be able todetermine the number of notifications, without visually focusing on thedisplay 306. In some embodiments, the computing device 302 may outputdifferent haptic effects for different kinds of notifications. Forexample, the computing device 302 may output an intense vibration for amissed phone call notification and a low-magnitude vibration for ane-mail notification. This may allow the user to determine the types ofthe notifications, without visually focusing on the display 306.

In some embodiments, the computing device 302 may determine acharacteristic (e.g., type, duration, magnitude) of a haptic effectbased on the simulated physics model. For example, as discussed above,the computing device 302 may output a haptic effect upon a notificationbubble impacting the lower edge 314 of the display 310. In one suchembodiment, the computing device 302 may determine the force of theimpact using the simulated physics model. The computing device 302 maydetermine the magnitude of the haptic effect based on the force of theimpact. For example, if the force of the impact is large, the computingdevice 302 may determine a high-magnitude haptic effect.

As another example, the computing device 302 may output virtual objects308 comprising granular materials (e.g., sand). Upon a user moving thecomputing device 302 (e.g., rocking the computing device 302 on thesurface 304), the computing device 302 may output a haptic effectconfigured to simulate the granular materials shifting or sliding over asurface (e.g., the curved surface of the display 306). For example, thecomputing device 302 may use the simulated physics model (e.g., whichmay rely on granular synthesis, particle physics, or other techniques)to determine how the granular materials would slide over a surface withthe same curvature as the computing device 302. In such an embodiment,the computing device 302 may correspondingly move the granular materialsaround the display 306 to visually simulate movement of the granularmaterials. The computing device 302 may additionally or alternativelyoutput haptic effects, such as vibrations, configured to physicallysimulate the movement of the granular materials. In some embodiments,the computing device 302 may additionally or alternatively output soundassociated with the virtual object. For example, the computing device302 may output a sound, e.g., configured to simulate the sound of movingsand. This may provide a more realistic experience to the user. In someembodiments, this may provide entertainment to the user, e.g., to passthe time.

As still another example, the computing device 302 may output virtualobjects 308 comprising a liquid (e.g., water). Upon a user moving thecomputing device 302 (e.g., rolling the computing device), the computingdevice 302 may output a haptic effect configured to simulate the liquidsliding over a surface (e.g., the curved surface of the display 306).For example, the computing device 302 may use the simulated physicsmodel to determine how the liquid would slide over, or puddle on, asurface with the same curvature as the computing device 302. In such anembodiment, the computing device 302 may correspondingly move the liquidaround the display 306 to visually simulate movement of the liquid. Thecomputing device 302 may additionally or alternatively output hapticeffects, such as vibrations and textures, configured to physicallysimulate the movement of the fluid. In some embodiments, the computingdevice 302 may additionally or alternatively output sound, e.g.,configured to simulate the sound of moving water.

In some embodiments, the computing device 302 may determine the hapticeffect based on a characteristic (e.g., a material, size, shape, virtualweight or density, location) of a virtual object 308. For example, thevirtual notification bubbles may be configured to, e.g., look likemarbles. For instance, the notification bubbles may comprise a virtualglass texture. Upon a user interacting with a notification bubble viathe display 306 (e.g., a touch-screen display), the computing device 302may output a haptic effect, e.g., configured to simulate the glasstexture. This may provide a more realistic and immersive userexperience.

In some embodiments, the computing device 302 may determine a hapticeffect based on a user interaction with the computing device 302. Forexample, referring to FIG. 3B, the computing device 302 may output avirtual user interface widget, such as a virtual slider 316, on thedisplay 306. The user interface widget may be, for example, associatedwith a music application executing on the computing device 302. Thecomputing device 302 may detect the user rolling the computing device302 and manipulate the user interface widget based on the roll. Forexample, the computing device 302 may detect the user rolling thecomputing device 302 (e.g., toward the user) and move a slider bar 318of a virtual slider 316 in increments. This may, for example, decreasethe volume of audio output by the computing device 302. In someembodiments, the computing device 302 outputs a haptic effect (e.g., apulsed vibration or click sensation) at each increment. The hapticeffects may simulate detents or otherwise simulate interacting with aslider.

In some embodiments, the computing device 302 may output a haptic effectassociated with a tilt of the computing device 302. For example, in thevirtual slider embodiment described above, the computing device 302 maydetect the user rolling the computing device 302, such that one side 312of the computing device 302 lifts upward (e.g., as shown by dashed arrow322) and the other side 310 of the computing device 302 rolls downward.This may tilt the computing device 302 at an angle. The computing device302 may output a haptic effect associated with the angle. For example,the computing device 302 may output, e.g., a vibration with a magnitudethat increases as the angle increases and/or decreases as the angledecreases. This may, for example, indicate to the user how far theslider bar 318 has moved from a default position. As another example,the computing device 302 may output a haptic effect upon the angleexceeding one or more thresholds. For instance, the computing device 302may output a click sensation upon detecting that, e.g., the computingdevice 302 has tilted more than 10 degrees from a previous tilt angle.This may, for example, simulate detents or another haptic effectassociated with a slider.

In some embodiments, the computing device 302 may execute a shoppingapplication. The shopping application may allow a user to purchasematerials, e.g., for crafting projects. In some embodiments, computingdevice 302 may detect user interactions and output haptic effectssimulating characteristics of the materials. For example, the computingdevice 302 may output a virtual object 308 comprising a material, suchas plastic or wood. In some embodiments, upon the user rolling thecomputing device 302, the computing device 302 may output a hapticeffect associated with the material. For example, the haptic effect maybe configured to resist against the roll by an amount associated withthe flexibility of the material. The user may perceive the haptic effectand, e.g., determine if the material suits a particular project.

In some embodiments, the computing device 302 may generate resistance byactuating a deformation haptic output device comprising, e.g., a smartgel or rheological fluid layer. In one embodiment, the deformationhaptic output device may be positioned underneath a side 310 of thecomputing device 302 (e.g., between the computing device 302 and thesurface 304). Actuating the deformation haptic output device may causethe smart gel or rheological fluid layer to expand between the computingdevice 302 and the surface 304. This may generate an upward force in thedirection opposite to the downward force (e.g., shown by dashed line320) applied by the user's finger. The user may perceive the upwardforce as resistance. In another embodiment, the deformation hapticoutput device may be coupled to the back of the computing device 302(e.g., the surface of the computing device 302 contacting the surface304). Actuating the deformation haptic output device may cause the smartgel or rheological fluid layer to flex, bend, or otherwise deform. Thismay cause the computing device 302 to deform. The user may perceive thedeformation as the resistance.

In some embodiments, the computing device 302 may output a haptic effectupon the user countering the resistance of the computing device 302 withan amount of force above a threshold. For example, in the craftingapplication embodiment described above, the user may counter theresistance from the computing device 302 with an amount of force, e.g.,exceeding the tensile strength of the material. In some embodiments, thecomputing device 302 may detect the force exerted by the user and outputa haptic effect (e.g., a jolt sensation) configured to, e.g., simulatethe breaking the material. This may realistically simulate aninteraction with the material to the user.

In some embodiments, the computing device 302 may output haptic effectsconfigured to simulate, e.g., the resistance and/or breaking of each ofthe layers in a multi-layered material. For example, the computingdevice 302 may resist against the user with an amount of forceassociated with the elasticity of a first layer of material, e.g., asdescribed above. Upon the computing device 302 detecting the usercountering the resistance with an amount of force exceeding the tensilestrength of the first layer of material, the computing device 302 mayoutput a haptic effect comprising, e.g., a jolt sensation. This maysimulate breaking the first layer of material. In such an embodiment,the computing device 302 may continue to resist the user, e.g., with anamount of force associated with the elasticity of a second layer ofmaterial. Upon the computing device 302 detecting the user counteringthe resistance with an amount of force exceeding the tensile strength ofthe second layer of material, the computing device 302 may output ahaptic effect (e.g., another jolt sensation and/or a high-magnitudevibration). This may simulate breaking the second layer of material. Insome embodiments, this process may repeat for as many layers are in thematerial.

In some embodiments, the computing device 302 may output haptic effectsconfigured to stop the computing device 302 from rocking back-and-forth,or otherwise slow the rocking. For example, after pressing down on theside 310 of the computing device 302, the user may release the side 310of the computing device 302. This may cause the computing device 302 torock back-and-forth. In some embodiments, the computing device 302 mayoutput a deformation haptic effect configured to stop or prevent thecomputing device 302 from rocking. For example, the computing device 302may actuate a deformation haptic output device comprising, e.g., a smartgel or rheological fluid layer. In one embodiment, the deformationhaptic output device may be positioned underneath a side 310 of thecomputing device 302 (e.g., between the computing device 302 and thesurface 304). Actuating the deformation haptic output device may causethe smart gel or rheological fluid layer to expand between the computingdevice 302 and the surface 304. This may stop, slow, or prevent therocking. In other embodiments, the computing device 302 may outputpulses, jolts, or other haptic effects at intervals configured to stopor slow the rocking.

In some embodiments, the computing device 302 may determine whether thecomputing device 302 is positioned on a surface 304 or in a user's hand.For example, the back surface of the computing device 302 (e.g., thesurface of the computing device 302 contacting the surface 304 in FIG.3A) may comprise one or more sensors (e.g., pressure and/or capacitivesensors). The computing device 302 may receive data from the sensors anddetermine, based on the data, if the computing device 302 is being heldor is resting on the surface 304. For example, the computing device 302may comprise a long, narrow pressure sensor positioned in the middle of,and along a longitudinal axis (e.g., Y-axis 326) of, the back surface ifthe computing device 302. In such an embodiment, the computing device302 may receive data from the pressure sensor consistent with thecomputing device 302 resting on a flat surface and determine that thecomputing device 302 is on a surface 304. As another example, thecomputing device 302 may comprise a capacitive sensor coupled to theback surface of the computing device 302. Upon a user holding thecomputing device 302 (e.g., and contacting the capacitive sensor), thecapacitance detected by the capacitive sensor may change. The computingdevice 302 may detect the changed capacitance and determine whether theuser is holding the computing device 302 based on the change.

In some embodiments, the computing device 302 may determine a visualand/or haptic effect based on whether the computing device 302 ispositioned on a surface 304 or in a user's hand. For example, if thecomputing device 302 is being held by the user, the user may perceivevisual and/or haptic effects based on a simulated natural phenomenon(e.g., simulated gravity from the simulated physics model) as confusingand/or disorienting. For instance, the user may perceive a virtualobject 308 moving around the display 306 in accordance with simulatedgravity, and associated haptic effects, as confusing. Thus, in oneembodiment, the computing device 302 may manipulate characteristics ofthe simulated physics model to turn off, reduce, or otherwise modify theeffects of simulated natural phenomena, e.g., on the movements of thevirtual object 308 and/or on haptic effects.

FIG. 4A shows yet another embodiment of a system for haptically-enabledcurved devices. The system comprises a curved computing device 402positioned on a surface 404. The system also comprises wearablecomputing devices 412, 414. A wearable computing device 412 or 414 maycomprise a computing device (e.g., with a processor, memory, networkinterface, haptic output device, and/or other components) that isconfigured to be worn on or around a body part of the user. In someembodiments, a wearable computing device 412 or 414 may be associatedwith a shoe, an armband, a sleeve, a jacket, glasses, a glove, awristband, a bracelet, an article of clothing, a hat, a headband, and/orjewelry. In the embodiment shown in FIG. 4A, the user is wearing awearable computing device 412 comprising a ring and a wearable computingdevice 414 comprising a watch. The wearable computing devices 412, 414may be in wired or wireless communication with each other and/or thecomputing device 402.

The computing device 402 may detect one or more user interactions andexecute one or more associated functions. For example, the user maypress on an edge 410 of the computing device 402, causing the computingdevice 402 to roll, e.g., toward the user. In some embodiments, thecomputing device 402 may detect the roll and, e.g., transfer data fromthe computing device 402 to another device (e.g., wearable computingdevice 414). For example, the computing device 402 may detect thestrength of wireless signals emitted by nearby devices. In someembodiments, the computing device 402 may determine which nearby deviceis closest based on the strength of the wireless signals. In one suchembodiment, the computing device 402 may transmit the data to theclosest device (e.g., wearable computing device 412). In anotherembodiment, the computing device 402 may detect devices (e.g., wearablecomputing devices 412, 414) that are wirelessly connected to thecomputing device 402 via, e.g., Bluetooth. In such an embodiment, thecomputing device 402 may transmit the data to one or all of theconnected devices. In still other embodiments, the computing device 402may receive a user selection of a destination device and transmit thedata to the destination device.

In the embodiment shown in FIG. 4A, the computing device 402 isconfigured to transmit data to the wearable computing devices 412, 414.For example, the computing device 402 may output (e.g., via display 406)a virtual object 408 representing, e.g., an available news clip. Uponthe user tilting or rolling the computing device 402, the computingdevice 402 may transfer data associated with the virtual object 408(e.g., the content of the news clip) to, e.g., wearable computing device414. In some embodiments, the wearable computing device 414 may receivethe data and, e.g., output the virtual object 408 and/or at least aportion of the data (e.g., a portion of the news clip) on a display 416.

In some embodiments, the system outputs visual and/or audio effectsconfigured to enhance the user experience of, e.g., a data transfer. Forexample, upon the user tilting or rolling the computing device 402, thecomputing device 402 may manipulate the virtual object 408 on thedisplay 406 in a way that, e.g., visually simulates the data transfer.In one such embodiment, the computing device 402 may visually cause thevirtual object 408 to “roll” down the display 406, e.g., until thevirtual object 408 impacts the edge 418 of the display 406. After thevirtual object 408 impacts the edge 418 of display 406 it may “jump” offof the display 406, e.g., simulating the appearance a ball rolling off aramp. In some embodiments, the wearable computing device 414 maythereafter (e.g., upon completion of the data transfer) depict thevirtual object 408 rolling onto the display 416. The user may perceivethis series of visual events as simulating the transfer of the data fromthe computing device 402 to the wearable computing device 414.

In some embodiments, the system outputs haptic effects configured toenhance the user experience, e.g., of the data transfer. For example, inthe rolling and jumping embodiment described above, the computing device402 may output a first haptic effect (e.g., a rumbling sensation) as thevirtual object 408 rolls down the display 406. The computing device 402may output a second haptic effect (e.g., a jolt or high-magnitudevibration) upon the virtual object 408 impacting the edge 418 of thedisplay 406 and/or jumping off the display 406. In some embodiments, thewearable computing device 414 may additionally or alternatively outputhaptic effects. For example, in one embodiment, upon completion of thedata transfer, the wearable computing device 414 may output a popsensation. Upon the data rolling on to the display 416 of the wearablecomputing device 414, the wearable computing device 414 may output ahaptic effect comprising, e.g., a rumbling sensation. The user mayperceive the series of haptic effects as simulating the flow of the datafrom the computing device 402 to the wearable computing device 414,and/or enhancing the realism of the visual events.

In some embodiments, the system may output visual, audio, and/or hapticeffects via a plurality of wearable computing devices 412, 414. Thesystem may coordinate the output, type, and duration of the visual,audio, and/or haptic effects to provide enhanced experiences to theuser. For example, in some embodiments, the computing device 402 andwearable computing devices 412, 414 output haptic effects configured tocause the user to perceive the data as transferring from the computingdevice 402, to the wearable computing device 412, and then to thewearable computing device 414 (e.g., as depicted by the dashed arrow).For example, upon the user tilting or rolling the computing device 402,the computing device 402 may cause the virtual object 408 to roll downand impact the edge 418 of the display 406, and may output associatedhaptic effects, e.g., as described above. In some embodiments, thewearable computing device 412 may thereafter (e.g., 200 millisecondslater) output a haptic effect (e.g., a short vibration). The user mayperceive this haptic effect as the data “impacting” the wearablecomputing device 412. Thereafter (e.g., 120 milliseconds after thewearable computing device 412 outputs a haptic effect), the wearablecomputing device 414 may output visual and/or haptic effects (e.g., asdescribed above). The user may perceive this series of visual and/orhaptic effects as the data (or virtual object 408) hopping between thecomputing device 402 and wearable computing devices 412, 414. The systemcan cause any number and configuration of devices (e.g., computingdevice 402 and wearable devices 412, 414) to output any number and/ortype of visual, audio, and/or haptic effects (e.g., to simulate datatransfer to a user).

In some embodiments, the system may output visual, audio, and/or hapticeffects upon the user releasing the edge 410 of the computing device402. In one embodiment, the computing device 302 may display the virtualobject 408 (e.g., the virtual object 408 may reappear) upon the userreleasing the edge 410 of the computing device 402. In anotherembodiment, the system may output visual, audio, and/or haptic effectscoordinated such that the user perceives the data (or virtual object408) as hopping from the wearable computing device 414, to the otherwearable computing device 412, and then to the computing device 402. Forexample, wearable computing device 414 may, e.g., depict the virtualobject 408 rolling off the display 416 and/or output an associatedhaptic effect. Thereafter (e.g., 120 milliseconds later), the wearablecomputing device 412 may output a haptic effect. Still later (e.g., 200milliseconds after the wearable computing device 412 outputs the hapticeffect), the computing device 402 may, e.g., depict the virtual object408 rolling onto the display 406 and/or output haptic effects.

FIG. 4B shows still another embodiment of a system forhaptically-enabled curved devices. In this embodiment, the user iswearing a wearable computing device 422 (e.g., goggles or glasses)comprising a head-mounted display 420.

In some embodiments, the computing device 402 may detect a userinteraction and, based on the user interaction, transfer data to aremote display device (e.g., a television, wearable computing device422, and/or a computer monitor). For example, the user may abruptlypress on the edge 410 of the computing device 402. This may cause thecomputing device 402 to quickly roll against the surface 404 (e.g., in acatapult-like movement). In some embodiments, the computing device 402may detect the quick roll and responsively transmit data to a remotedisplay device. In some embodiments, the computing device 402 may selectthe remote display device using, e.g., any of the methods describedabove with respect to FIG. 4A for selecting a device to which totransmit data. The remote display device may receive the data and, e.g.,display it on the display.

In some embodiments, the system may output visual, audio, and/or hapticeffects configured to simulate launching the data (e.g., like acatapult) from the computing device 402 to the remote display device(e.g., as shown by the dashed line). For example, the computing device402 may output a virtual object 408 indicative of a received e-mail. Thecomputing device 402 may detect the user abruptly pressing down andholding the edge 410 of the computing device 402, e.g., causing thecomputing device 402 to rapidly roll toward the user. In someembodiments, the computing device 402 may responsively transmit dataassociated with the virtual object 408 (e.g., the e-mail) to thewearable computing device 422. In such an embodiment, the computingdevice 402 may output a haptic effect configured to, e.g., simulate thedata and/or virtual object 408 being ejected from the computing device402. For example, the computing device 402 may output a jolt sensation.Additionally or alternatively, the computing device 402 may visuallysimulate the virtual object 408 being launched off the display 406and/or remove the virtual object 408 from the display 406.

In some embodiments, the wearable computing device 422 may receive thedata and output, e.g., the virtual object 408 and/or at least a portionof the data via the head-mounted display 420. For example, the wearablecomputing device 422 may output the content of the e-mail via thehead-mounted display 420. Additionally or alternatively, the wearablecomputing device 422 may output a haptic effect configured to, e.g.,simulate the virtual object 408 and/or data impacting the wearablecomputing device 422. For example, the wearable computing device 422 mayoutput a medium-magnitude vibration. In some embodiments, thecombination and/or sequence of haptic effects output by the system maycause the user to perceive the virtual object 408 and/or data as beinglaunched from the computing device 402 onto the head-mounted display420.

In some embodiments, upon the user interacting with the computing device402, the computing device 402 may transmit a signal to the remotedisplay device configured to cause the remote display device to removethe virtual object 408 and/or data from the display. For example, uponthe user releasing the edge 410 of the computing device 402 (e.g., suchthat the computing device 402 rolls back to its rest position on thesurface 404), the computing device 402 may transmit a signal configuredto cause the wearable computing device 422 to remove the e-mail contentfrom the head-mounted display 420. In some embodiments, the wearablecomputing device 422 may output an associated haptic effect, e.g.,configured to simulate the data and/or virtual object 408 being ejectedfrom the wearable computing device 422. In some embodiments, thecomputing device 402 may thereafter output the data and/or the virtualobject 408 on the display 406. Additionally or alternatively, thecomputing device 402 may output a haptic effect, e.g., configured tosimulate the data and/or virtual object 408 impacting the computingdevice 402. In this manner, the user can pass content between displays,and visually and/or haptically perceive the data transfer.

FIG. 5 shows another embodiment of a system for haptically-enabledcurved devices. The system comprises a curved computing device 502(e.g., with a curved outer housing 504) in wired or wirelesscommunication with an electronic device 506 (e.g., a tablet, e-reader,gaming device, smart phone, or laptop computer). The computing device502 may act as an intermediary between the user and the electronicdevice 506. For example, in some embodiments, the curved computingdevice 502 may comprise a curved user interface for interacting withelectronic device 506. In such an embodiment, the curved computingdevice 502 may comprise limited processing capabilities and act as aninterface device for the user to interact with the electronic device506. In other embodiments, the curved computing device 502 may comprisesimilar functionality as electronic device 506.

In some embodiments, a user may interact with the computing device 502to provide input (e.g., commands) to the electronic device 506. Forexample, the electronic device 506 may output a video game via a display508. The video game may comprise, e.g., a virtual catapult game. Thecomputing device 502 may detect the user rolling, rocking, or otherwisemanipulating the computing device 502 against a surface 510. Forexample, the computing device 502 may detect the user abruptly pressingdown on an edge 512 of the computing device 502, e.g., such that thecomputing device 502 rolls toward the user, as indicated by the dashedlines. The computing device 502 may transmit a signal associated withthe manipulation to the electronic device 506. For example, thecomputing device 502 may transmit a signal associated with the speed anddirection of the roll (e.g., as detected by an accelerometer and/orgyroscope) to the electronic device 506. The electronic device 506 mayreceive the signal and execute an associated function. For example, theelectronic device 506 may receive the signal and, e.g., launch a virtualrock from a virtual catapult in the video game. In one embodiment, theelectronic device 506 may launch the virtual catapult with a force anddirection based on the speed and direction of the roll. In someembodiments, the computing device 502 may output associated hapticeffects. For example, the computing device 502 may output a vibrationconfigured to simulate launching the virtual catapult.

In some embodiments, the computing device 502 may output data and/orhaptic effects to the user based on signals from the electronic device506. For example, in the catapult video game embodiment described above,the electronic device 506 may transmit a signal to the computing device502 upon, e.g., the user's virtual character being struck by a virtualrock from an enemy catapult. The signal may be configured to cause thecomputing device 502 to, e.g., output a haptic effect, such as ahigh-magnitude vibration. The user may perceive the haptic effect assimulating the game event (e.g., the virtual rock hitting the user'scharacter). In some embodiments, using the computing device 502 as anintermediary may allow the system to provide haptic effects to the user,even if the electronic device 506 lacks haptic capabilities. Using thecomputing device 502 as an intermediary may additionally oralternatively allow the user to input data or receive haptic effectsusing a curved device, even if the electronic device 506 is planar. Thismay enhance the user experience.

Illustrative Methods for Haptically-Enabled Curved Devices

FIG. 6 is a flow chart of steps for performing a method for providinghaptically-enabled curved devices according to one embodiment. In someembodiments, the steps in FIG. 6 may be implemented in program code thatis executed by a processor, for example, the processor in a generalpurpose computer, a mobile device, or a server. In some embodiments,these steps may be implemented by a group of processors. In someembodiments one or more steps shown in FIG. 6 may be omitted orperformed in a different order. Similarly, in some embodiments,additional steps not shown in FIG. 6 may also be performed. The stepsbelow are described with reference to components described above withregard to computing device 201 shown in FIG. 2.

The method 600 begins at step 602 when the processor 202 receives asensor signal from a sensor (e.g., sensor 230, interaction sensor 232,and/or touch sensor 208). The sensor signal can be in analog or digitalform. In some embodiments, the interaction sensor 232 may comprise anaccelerometer and/or gyroscope configured to detect movement of thecomputing device 201 and transmit an associated sensor signal to theprocessor 202. In such an embodiment, the sensor signal may beindicative of a user rocking, rolling, and/or otherwise manipulating thecomputing device 201 (e.g., on a surface). In other embodiments, thesensor signal may be associated with a user interaction (e.g., tap,gesture, swipe, two-finger pinch, etc.) with the touch sensitive surface216. For example, the touch sensor 208 may detect a user contacting withtouch sensitive surface 216 and transmit a sensor signal (e.g.,comprising a location, speed, amount of pressure, etc.) associated withthe contact.

The method 600 continues at step 604 when the processor 202 determines auser interaction based at least in part on the sensor signal. Forexample, in some embodiments, the processor 202 may determine acharacteristic (e.g., a velocity, direction, and/or orientation) of amovement of the computing device 201 based on the sensor signal (e.g.,from an accelerometer and/or gyroscope). In such an embodiment, theprocessor 202 may determine whether the user is, e.g., rolling, rocking,and/or otherwise moving (e.g., orienting) the computing device 201 basedon the characteristic.

In some embodiments, the user interaction comprises interacting with atouch sensitive surface 216. The processor 202 may receive sensorsignals from touch sensor 208 and determine a characteristic (e.g.,direction, velocity, an amount of pressure) of the user interaction withtouch sensitive surface 216. Based on the characteristic, the processor202 may determine that the user interaction comprises, e.g., a gesture,tap, and/or other interaction with touch sensitive surface 216.

The method 600 continues at step 606 when the processor 202 determines alocation along a curvature of the curved computing device 201 associatedwith the user interaction. For example, the user interaction maycomprise a user contacting a particular position on the touch sensitivesurface 216. In some embodiments, the processor 202 may use an algorithm(e.g., stored in memory 204) to determine a location along the curvatureassociated with the user interaction. For example, the processor 202 mayuse an equation that correlates positions on the touch sensitive surface216 to locations along the curvature. The processor 202 may input theposition on the touch sensitive surface 216 into the equation tocalculate the associated location along the curvature.

In some embodiments, the processor 202 may use a lookup table todetermine the location along the curvature. For example, the processor202 may detect a user interacting with (e.g., contacting or tapping on)a virtual object output on a touch-screen display (e.g., comprisingtouch sensitive surface 216). In such an embodiment, the processor 202may use a lookup table to map the display pixels associated with thevirtual object to locations along the curvature. Because the locationsof the display pixels along the curvature should be similar to thelocation of the user interaction, the processor 202 can use thelocations of the display pixels along the curvature to determine thelocation of the user interaction along the curvature.

In some embodiments, the processor 202 determines the curvature in thecomputing device 201, e.g., prior to determining the location along thecurvature of the user interaction. For example, the processor 202 maydetect a user bending, flexing, or otherwise generating a curve in thecomputing device 201. In one such embodiment, the processor 202 mayreceive sensor signals from one or more sensors 230 (e.g., straingauges, pressure sensors, or other devices) configured to detect anamount of bend in the computing device 201. The processor 202 maydetermine (e.g., via an algorithm and/or a lookup table) an amount ofbend and/or a curvature in the computing device 201 based on the sensorsignals. For example, the processor 202 may use a lookup table to map aplurality of forces (e.g., strains or pressures) from a plurality offorce sensors (e.g., strain gauges or pressure sensors coupled to thecomputing device 201) to a particular bend or curvature in the computingdevice 201. As another example, the processor 202 may apply forces froma plurality of force sensors to an equation to generate a model of thecurvature. In some embodiments, this may allow the computing device 201to more accurately determine the location along the curvature of asubsequent user interaction.

In some embodiments, the computing device 201 outputs a deformationhaptic effect configured to bend, flex, or otherwise change thecurvature of the computing device 201. In such embodiments, thecomputing device 201 may subsequently determine the curvature in thecomputing device 201 using any of the methods described above. This mayallow the computing device 201 to more accurately determine the locationalong the curvature of a subsequent user interaction.

The method 600 continues at step 608 when the processor 202 determines ahaptic effect based at least in part on the user interaction. Theprocessor 202 may determine the haptic effect based the type, location,duration, or other characteristics of the user interaction. For example,the processor 202 may access a lookup table stored in memory 204 to mapa particular type of user interaction to a particular haptic effect. Forexample, the processor 202 may determine that the user interactioncomprises rolling the device on a surface and consult a lookup table todetermine a corresponding haptic effect (e.g., a vibration).

In some embodiments, the processor 202 may determine a haptic effectbased on the location of the user interaction along the curvature. Forexample, the processor 202 may execute a virtual driving game in whichthe user drives a virtual car on a road through a valley. The curvaturein the computing device 201 may represent the hills on either side ofthe valley. The processor 202 may detect the user moving a finger up thecurvature (e.g., to drive the user's virtual car up a valley hill) andoutput a haptic effect comprising, e.g., a rumbling vibration. This maysimulate the bumpy, unpaved nature of the road (e.g., versus a smoothroad).

In some embodiments, the processor 202 determines a haptic effect basedon a characteristic associated with a virtual object. For example, thecomputing device 201 may detect a user interaction with a virtual objectand transmit a signal associated with the virtual object to theprocessor 202. In some embodiments, the processor 202 may determine thehaptic effect based on the height, width, shape, color, location,function, texture, and/or other characteristics of the virtual object.For example, if the virtual object comprises sand, the processor 202 maydetermine a haptic effect comprising a sandy or grainy texture.

In some embodiments, the processor 202 determines a haptic effect basedon a simulated physics model. For example, the processor 202 may apply avirtual weight, density, texture, and/or other characteristic of avirtual object to a simulated physics model. The simulated physics modelmay dictate how the virtual object is to move or interact with othervirtual objects within a simulated environment. In one such embodiment,the processor 202 may determine a simulated impact force between thevirtual object and another virtual object based on the simulated physicsmodel. The processor 202 may determine a characteristic (e.g.,magnitude, frequency, duration, type, etc.) of the haptic effect basedon the impact force. For example, if the impact force is large, theprocessor 202 may determine a high-magnitude vibration and/or a joltsensation. If the impact force is small, the processor 202 may determinea low-magnitude vibration or no haptic effect.

In some embodiments, the processor 202 determines a haptic effect basedon a function. For example, the computing device 201 may detect the userabruptly rolling the computing device 201 and associate a particularfunction with the user interaction. For instance, the computing device201 may associate a function comprising transmitting data from thecomputing device 201 to a remote display device (e.g., as described withrespect to FIG. 4B) with the abrupt roll. In such an embodiment, theprocessor 202 may initiate the data transfer and/or output hapticeffects associated with the data transfer. For example, the computingdevice 201 may output a vibration that decreases in magnitude as thedata is transferred. This may, for example, indicate the progress of thedata transfer to computing device 201.

In some embodiments, the computing device 201 may store associated“haptic profiles” in which a user can determine and save in memory(e.g., memory 204) a “profile” of the haptic effects the user would likeassociated with particular user interactions. For example, in oneembodiment, a user can select from a list of options which haptic effectthe user would like associated with the a user interaction comprisingslowly rolling the computing device 201, abruptly rolling the computingdevice 201, contacting a particular area on a touch sensitive surface216, or contacting a particular location along the curvature of thecomputing device 201. In some embodiments, the list may comprise, forexample, haptic effects such as a low magnitude vibration, a joltsensation, a low-magnitude vibration, and/or a pulsed vibration. In someembodiments, the processor 202 may consult with the user's hapticprofile to determine which haptic effect to generate. For example, ifthe user's haptic profile associates a catapult-like abrupt roll with ajolt sensation, in response to detecting such an abrupt roll, theprocessor 202 may determine a haptic effect comprising a jolt sensation.

In some embodiments, the processor 202 determines a plurality of hapticeffects. For example, the computing device 201 may output a virtual ballon a display. Upon the user interacting with (e.g., rolling) thecomputing device 201, the processor 202 may determine an associatedhaptic effect (e.g., a rumbling vibration). The haptic effect may beconfigured to, e.g., simulate the virtual ball rolling along thedisplay. In some embodiments, the processor 202 may also determineanother haptic effect (e.g., a pop sensation) upon the virtual ballcontacting a virtual edge of the display. The haptic effect may beconfigured to, e.g., simulate the impact of a ball against a wall. Insome embodiments, the multiple haptic effects may provide a morerealistic and immersive representation of the virtual object (e.g.,movement of the virtual ball around the display) to the user.

In some embodiments, the processor 202 determines a plurality of hapticeffects to be output by a plurality of devices. For example, theprocessor 202 may determine multiple haptic effects to be coordinatedand/or synchronized among a plurality of devices (e.g., as describedwith respect to FIGS. 4A and 4B). In one such embodiment, the processor202 may determine a first haptic effect (e.g., a jolt sensation) to beoutput by the computing device 201, a second haptic effect (e.g., apulsed vibration) to be output by a remote device (e.g., wearablecomputing device 412 of FIG. 4A), and/or a third haptic effect (e.g., ahigh-magnitude vibration) to be output by another remote device (e.g.,wearable computing device 412 of FIG. 4B). The processor 202 maydetermine the types of, and/or coordinate the output of, the hapticeffects based on one or more algorithms and/or lookup tables. Forexample, the processor 202 may consult a lookup table to map a “contentthrow” haptic effect (e.g., configured to simulate throwing content fromone device to another, as described with respect to FIG. 4B) to a seriesof haptic effects to be output by a particular combination of devices ina specific sequence.

The method 600 continues at step 610 when the processor 202 transmitsone or more signals associated with the haptic effects. In someembodiments, the signals comprise haptic signals. In such embodiments,the processor 202 may access drive signals stored in memory 204 andassociated with particular haptic effects. In one embodiment, a signalis generated by accessing a stored algorithm and inputting parametersassociated with a haptic effect. For example, in such an embodiment, analgorithm may output data for use in generating a drive signal based onamplitude and frequency parameters. As another example, a haptic signalmay comprise data to be decoded by the haptic output device 218. Forinstance, the haptic output device 218 may itself respond to commandsspecifying parameters such as amplitude and frequency.

In other embodiments, the signals are configured to cause one or moreremote devices to output the haptic effects. The processor 202 maytransmit the signals to the remote devices to coordinate the output ofhaptic effects among the remote devices. For example, referring to FIG.4A, the processor may transmit signals to the wearable computing devices412, 414 configured to cause the wearable computing devices 412, 414 tooutput particular haptic effects at particular times. For instance, theprocessor may transmit a signal to the wearable computing device 414 tocause the wearable computing device 414 to output a vibration after thewearable computing device 412 outputs a haptic effect (e.g., in oneembodiment, 200 milliseconds after the wearable computing device 412outputs a haptic effect).

The method 600 continues at step 612 when one or more haptic outputdevices (e.g., haptic output device 218 and/or haptic output devices onremote devices) receive the one or more signals (e.g., haptic signalsand/or signals transmitted by computing device 201) and output the oneor more haptic effects. In some embodiments, the haptic effect maycomprise a texture (e.g., sandy, bumpy, glassy, or smooth), a vibration,a change in a perceived coefficient of friction, a change intemperature, a stroking sensation, an electro-tactile effect, and/or adeformation (e.g., a deformation of a surface associated with thecomputing device 201).

In some embodiments, the haptic effect comprises a series of hapticeffects coordinated among a plurality of devices (e.g., computing device201 and one or more remote devices). For example, the haptic effect maycomprise a low-magnitude vibration output via computing device 201, ajolt output at a later time by a remote device, and high-magnitudevibration output at still a later time. In some embodiments, the usermay perceive this series of haptic effects as, e.g., indicating a flowof information in a particular direction.

Advantages of Haptically-Enabled Curved Devices

There are numerous advantages to haptically-enabled curved devices. Suchsystems may provide more realistic or immersive user experiences. Forexample, in some embodiments, the curved device may output a virtualobject comprising, e.g., a baby crib (such as in a nursing or caregivingapplication). The user may be able to virtually rock the crib by, e.g.,rocking the curved device back-and-forth. In one embodiment, the curveddevice may output haptic effects (e.g., vibrations) configured to, e.g.,simulate rocking the crib on a wooden floor or carpet. In this manner,the curvature in the curved device and/or the haptic effects may enhancethe realism of an interaction with a virtual object.

In some embodiments, haptically-enabled curved devices may be configuredto receive unique forms of user input, such as rolling or rocking thecurved device on a surface. For example, a curved device may detect auser abruptly rolling the curved device along a surface and execute anassociated function, e.g., transmitting data to a remote device. Suchforms of input may more realistically simulate physical actions in thereal world, e.g., launching an object with a catapult. Further, in someembodiments, the curved device may provide haptic effects associatedwith a user input and/or function. For example, the curved device mayoutput a haptic effect (e.g., a pulsed vibration) configured to, e.g.,confirm receipt of the user input and/or notify the user that the curveddevice is transmitting data. In such an embodiment, the haptic effectsmay allow the user to determine the state of the curved device and/or afunction executing on the curved device, without having to visuallyfocus on the curved device.

In some embodiments, haptically-enabled curved devices may provideunique forms of haptic output, such as rolling or rocking the curveddevice on a surface. For example, a curved device may execute a game.The object of the game may be, for instance, to tap a specific locationon the curved device. In such an embodiment, the curved device mayoutput haptic effects configured to rock and/or roll the curved deviceon a surface. This may make it more challenging to tap the location,providing entertainment to the user.

In some embodiments, haptically-enabled curved devices can act as anintermediary between a user and an electronic device. This may allow theuser to input data or receive haptic effects using the curved device,even if the electronic device is planar and/or lacks hapticcapabilities.

In some embodiments, haptically-enabled curved devices can coordinatemultiple visual, audio, and/or haptic effects among multiple electronicdevices to generate an enhanced user experience. For example, the curveddevice may coordinate the output of visual, audio, and/or haptic effectsamong two or more electronic devices to simulate, e.g., launching datafrom one electronic device to another, or data hopping between theelectronic devices. This may more realistically simulate, e.g., a datatransfer to the user.

General Considerations

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process that is depicted as aflow diagram or block diagram. Although each may describe the operationsas a sequential process, many of the operations can be performed inparallel or concurrently. In addition, the order of the operations maybe rearranged. A process may have additional steps not included in thefigure. Furthermore, examples of the methods may be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware, or microcode, the program code or codesegments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bound the scope of the claims.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

Embodiments in accordance with aspects of the present subject matter canbe implemented in digital electronic circuitry, in computer hardware,firmware, software, or in combinations of the preceding. In oneembodiment, a computer may comprise a processor or processors. Theprocessor comprises or has access to a computer-readable medium, such asa random access memory (RAM) coupled to the processor. The processorexecutes computer-executable program instructions stored in memory, suchas executing one or more computer programs including a sensor samplingroutine, selection routines, and other routines to perform the methodsdescribed above.

Such processors may comprise a microprocessor, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC),field programmable gate arrays (FPGAs), and state machines. Suchprocessors may further comprise programmable electronic devices such asPLCs, programmable interrupt controllers (PICs), programmable logicdevices (PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example tangible computer-readable media, that may storeinstructions that, when executed by the processor, can cause theprocessor to perform the steps described herein as carried out, orassisted, by a processor. Embodiments of computer-readable media maycomprise, but are not limited to, all electronic, optical, magnetic, orother storage devices capable of providing a processor, such as theprocessor in a web server, with computer-readable instructions. Otherexamples of media comprise, but are not limited to, a floppy disk,CD-ROM, magnetic disk, memory chip, ROM, RAM, ASIC, configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can read. Also,various other devices may comprise computer-readable media, such as arouter, private or public network, or other transmission device. Theprocessor, and the processing, described may be in one or morestructures, and may be dispersed through one or more structures. Theprocessor may comprise code for carrying out one or more of the methods(or parts of methods) described herein.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

What is claimed:
 1. A computing device, comprising: a touch-screendisplay having a curvature; a processor in communication with thetouch-screen display; and a memory on which program code executable bythe processor are stored to cause the processor to: detect aninteraction at a location on the curvature of the touch-screen displaybased on a sensor signal from the touch-screen display; after detectingthe interaction at the location on the curvature, determine an angle ora slope of the curvature at the location of the interaction; determine ahaptic effect based at least in part on the angle or the slope of thecurvature at the location of the interaction; and transmit a hapticsignal configured to cause a haptic output device to output the hapticeffect.
 2. The computing device of claim 1, wherein the curvature is oneof at least two curvatures defined in the touch-screen display.
 3. Thecomputing device of claim 1, wherein the computing device is asmartphone, a tablet, an e-reader, a gamepad, a portable gaming console,or a remote control.
 4. The computing device of claim 1, wherein thecurvature is permanently defined in the touch-screen display.
 5. Thecomputing device of claim 1, wherein the curvature defined in thetouch-screen display is a first curvature, and wherein the computingdevice has an outer housing defining a second curvature.
 6. Thecomputing device of claim 1, further comprising a sensor configured todetect rolling of the computing device on a surface, wherein the hapticeffect is a first haptic effect, and wherein the memory further includesinstructions executable by the processor to cause the processor to:determine a second haptic effect based on detecting rolling of thecomputing device on the surface via the sensor; and transmit a signalconfigured to cause the second haptic effect to be output by the hapticoutput device.
 7. The computing device of claim 1, wherein the computingdevice comprises the haptic output device, the haptic effect comprises aplurality of haptic effects configured to be output by multiple devicesin a predetermined order, and the memory further includes instructionsexecutable by the processor to cause the processor to: transmit thehaptic signal to the haptic output device of the computing device togenerate a first haptic effect in the plurality of haptic effects; andtransmit a signal to a remote wearable device configured to cause theremote wearable device to output a second haptic effect in the pluralityof haptic effects.
 8. The computing device of claim 1, wherein thehaptic effect is configured to cause the computing device to roll in apredetermined direction along a surface.
 9. The computing device ofclaim 1, wherein the haptic effect is configured to resist or stoprolling of the computing device along a surface.
 10. A methodcomprising: detecting, by a computing device, an interaction at alocation on a curvature of a touch-screen display based on a sensorsignal from the touch-screen display; after detecting the interaction atthe location on the curvature, determining, by the computing device, anangle or a slope of the curvature at the location of the interaction;determining, by the computing device, a haptic effect based at least inpart on the angle or the slope of the curvature at the location of theinteraction; and transmitting, by the computing device, a haptic signalconfigured to cause a haptic output device to output the haptic effect.11. The method of claim 10, wherein the curvature is one of at least twocurvatures defined in the touch-screen display.
 12. The method of claim10, wherein the computing device is a smartphone, a tablet, an e-reader,a gamepad, a portable gaming console, or a remote control.
 13. Themethod of claim 10, wherein the curvature is permanently defined in thetouch-screen display.
 14. The method of claim 10, wherein the curvaturedefined in the touch-screen display is a first curvature, and whereinthe computing device has an outer housing defining a second curvature.15. The method of claim 10, wherein the computing device comprises thehaptic output device, and wherein the haptic effect comprises aplurality of haptic effects configured to be output by multiple devicesin a predetermined order, and further comprising: transmitting thehaptic signal to the haptic output device of the computing device togenerate a first haptic effect in the plurality of haptic effects; andtransmitting a signal to a remote wearable device configured to causethe remote wearable device to output a second haptic effect in theplurality of haptic effects.
 16. A non-transitory computer-readablemedium comprising program code that is executable by a processor of acomputing device to cause the processor to: detect an interaction at alocation on a curvature of a touch-screen display based on a sensorsignal from the touch-screen display; after detecting the interaction atthe location on the curvature, determine an angle or a slope of thecurvature at the location of the interaction; determine a haptic effectbased at least in part on the angle or the slope of the curvature at thelocation of the interaction; and transmit a haptic signal configured tocause a haptic output device to output the haptic effect.
 17. Thenon-transitory computer-readable medium of claim 16, wherein thecurvature is one of at least two curvatures defined in the touch-screendisplay.
 18. The non-transitory computer-readable medium of claim 16,wherein the computing device is a smartphone, a tablet, an e-reader, agamepad, a portable gaming console, or a remote control.
 19. Thenon-transitory computer-readable medium of claim 16, wherein thecurvature defined in the touch-screen display is a first curvature, andwherein the computing device has an outer housing defining a secondcurvature.
 20. The non-transitory computer-readable medium of claim 16,wherein the computing device comprises the haptic output device, andwherein the haptic effect comprises a plurality of haptic effectsconfigured to be output by multiple devices in a predetermined order,and further comprising program code that is executable by the processorto cause the processor to: transmit the haptic signal to the hapticoutput device of the computing device to generate a first haptic effectin the plurality of haptic effects; and transmit a signal to a remotewearable device configured to cause the remote wearable device to outputa second haptic effect in the plurality of haptic effects.